The present invention relates to distributed data processing systems. More particularly, this invention relates to management of the window geometry (or layout) in a distributed client/server presentation system.
In a distributed data processing system, a computer user typically interacts with a local computer terminal which is known as the server system. The server system is connected functionally, by means of a communications network, to a remote data processing system which is known as the client system. The server system is not necessarily situated any great distance from the client system. An example of such a distributed data processing system is a PC workstation and host processor in a local area network where the client processing system and the workstation server are in the same building or possibly even the same office. A server system may also be connected to more than one client system.
In known distributed data processing systems in which an application is operating on the client system and corresponding graphics data is being drawn on the server system (where the end user is), the client application interacts with the user by defining client windows into which is placed graphical data and from which input entered by the user is received. An example of such input is mouse movement events when the mouse-pointer/cursor is in the window. The graphics input and output capability is provided by the server presentation system. The presentation system of a computer system is the layer of the architecture that provides the functions that may be selected by the application layer such as exchange, display and control of structured data. The server provides the support in the end-user node to process drawing and other requests for output and to direct the generated input to the correct place. The server may be interfacing with a number of client systems as the user may be executing applications which reside on a number of connected client nodes. The server needs to have sufficient understanding of the way the output area of the screen is used to allow clients to receive input and coordinate their drawing on to the appropriate local server terminal.
When the user moves the mouse (or cursor), a mouse (or cursor) event is generated. As the server may be used by a number of client nodes, it is not possible to route an (x,y) value to a client windowing component unless the server can identify that this client node owns the relevant part of the display. Clearly, the server needs to have some understanding of the window geometry. For example, it needs to know to which client system to send a specific mouse-generated event. Usually this would be the client system which owned that part of the screen where the pointer/cursor is.
There are other factors which require the server to have some understanding of the display window geometry. For example, in the case of overlapping windows, when a window is deleted by a client, other clients need to be told when and in which regions they need to repaint the data uncovered as a result of the deletion.
In known presentation systems such as X-Windows, which is a presentation system of the UNIX (registered trademark of Unix Systems Laboratories, Inc.) operating system software, the entire window geometry is stored in the server. This leads to unnecessary storage and processing overheads in the server, as well as unnecessary network traffic to create and modify these application windows.
Viewed from one aspect, the present invention provides a data processing system comprising: a remote processor and associated memory coupled to a local processor and associated memory; the remote processor including means for executing a plurality of application programs and sending window display data generated by the application programs to the local processor, the local processor including means for receiving the window display data and drawing the data as respective application windows, each containing one or more subarea windows within their perimeter, and where the application programs designate one or more of the subarea windows as an action field through which a user may access the respective application program, and is characterized in that display data common to both an application window and a corresponding action field is stored in the memory associated with the local processor and remaining display data is stored in the memory associated with the remote processor.
In accordance with the present invention, much of the information for a specific window can be managed entirely within the client presentation layer (for example, style information, callback addresses, etc.). The invention recognizes that not all windows generated in a client application program need to be externalized to the server. Only those for which the server needs to perform some different processing need to be externalized. An advantage of this approach is that it leads to a reduction in the network traffic necessary to create and modify application windows. A further advantage is the reduction in storage requirements and processing overheads in the server system.